ML4SAS: Machinelles Lernen für selbst-adaptive Systeme

Das Projekt ML4SAS erforscht neue Lösungen zur Entwicklung von selbst-adaptiven Systemen. Grundlage der Lösungen ist der Einsatz maschineller Lernenverfahren zur Laufzeit der Systeme.


Ausgangssituation

Ein selbst-adaptives System kann selbstständig seine Struktur und sein Verhalten während des Betriebs anpassen, indem es Veränderungen seiner Umwelt, von sich selbst sowie seiner Anforderungen beobachtet. So kann sich z.B. ein selbst-adaptiver Web-Service bei einem drastischen Anstieg der Nutzer neu konfigurieren, indem optionale Systemfunktionen deaktiviert werden. Durch diese Selbstanapassung zur Laufzeit kann der Web-Service seine Performanz-Anforderungen bei wechselndem Workload erfüllen.

Bei der Entwicklung selbst-adaptiver Systeme müssen Software-Ingenieure eine Adaptionslogik entwickeln, die kodiert, wann und wie sich das System anpassen soll. Dabei stehen sie vor der Herausforderung, dass zur Zeit der Entwicklung dieser Adaptionslogik nicht alle notwendigen Informationen zur Verfügung stehen (sog. „Design Time Uncertainty“). Aufgrund dieser „Design Time Uncertainty“ ist es z.B. in den meisten Fällen nicht möglich, exakt zu planen, an welche konkreten Umgebungszustände sich das System während des Betriebs anpassen soll. Darüber hinaus sind die genauen Auswirkungen einer Anpassung häufig nicht bekannt, sodass die Auswahl konkreter Adaptionen bereits zur Entwicklungszeit schwierig ist.

Lösungsweg

Der Einsatz von maschinellen Lernverfahren zur Laufzeit ist ein neuer Ansatz, um „Design Time Uncertainty“ zu adressieren. Diese Verfahren ermöglichen einem System, während des Betriebs aus den aktuellen Beobachtungen zu lernen. Ein spezieller Ansatz des maschinellen Lernens, der für selbst-adaptive Systeme verwendet wird, ist das Online Reinforcement Learning, also der Einsatz von bestärkendem Lernen zur Laufzeit. Online Reinforcement Learning zielt darauf ab, über die Interaktion eines Agenten mit seiner Umwelt geeignete Aktionen zu erlernen. Die Abbildung zeigt ein konzeptuelles Modell zur Integration von Reinforcement Learning in die Selbstanpassungslogik.

Im Projekt ML4SAS erforschen wir neue Wege für den Einsatz von Online Reinforcement Learning für selbstadaptive Systeme und adressieren spezifische Probleme und Herausforderungen für diese Art von Systemen.

Ziele

Exploration großer Adaptionsräume

Bestehende Lösungen zum Online Reinforcement Learning für selbst-adaptive Systeme schlagen vor, neue Adaptionen zufällig auszuwählen, um Adaptionsalternativen während des Lernens zu erkunden. Die Lerngeschwindigkeit hängt bei diesen Lösungen direkt von der Größe des Adaptionsraums ab, da jede Adaption die gleiche Chance hat, ausgewählt zu werden. Bei großen Adaptionsräumen (d.h. großen Mengen von Adaptionen) kann eine solche, zufällige Exploration während des Betriebs dazu führen, dass das System nur langsam lernt. Im Projekt wollen wir daher neuartige Explorationsstrategien bestimmen, um die Exploration bei einer großen Menge von Adaptionen zu steuern. Im ML4SAS-Projekt setzen wir dazu Feature-Modelle aus der Software-Produktlinienentwicklung ein.

Berücksichtigung von Systemevolution

Aktuelle Lösungen berücksichtigen nicht, dass ein selbst-adaptives System, wie jedes Softwaresystem, der Evolution unterliegt. Mit einer Systemevolution kann sich allerdings der Adaptionsraum verändern. So kann z.B. ein Softwareentwickler bestehende Adaptionen ändern oder entfernen und neue Adaptionen hinzufügen. Aktuelle Lösungen des maschinellen Lernens explorieren die neuen Adaptionen nur mit geringer Wahrscheinlichkeit (da alle Adaptionen die gleiche Chance haben, ausgewählt zu werden), sodass es lange dauern kann, bis die neuen Adaptionen exploriert sind. Im ML4SAS-Projekt werden wir neuartige Explorationsstrategien definieren, die Feature-Modell-Unterschiede nutzen, um die Exploration zu den neuen Adaptionen hinzuführen.

Stochastische Exploration nicht-stationärer Umgebungen

Um die Konvergenz des Lernprozesses zu gewährleisten, muss die Exploration neuer Adaptionen und die Nutzung des gelernten Wissens ausbalanciert werden. Eine typische Lösung besteht darin, die Explorationsrate im Laufe der Zeit zu verringern und so die Konvergenz zu erleichtern. Für das Online-Lernen muss allerdings bestimmt werden, wann und wie die Explorationsrate wieder erhöht werden soll, um nicht-stationäre Umgebungen zu erfassen. Dieses sind Umgebungen, in denen sich die Ergebnisse der Adaptionen mit der Zeit ändern. Im ML4SAS-Projekt werden wir diese Herausforderung angehen, indem wir Policy-based Reinforcement Learning als eine grundlegend andere Art des bestärkenden Lernens einsetzen.